package com.zz.tijian.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.zz.tijian.entity.Orders;
import com.zz.tijian.entity.req.*;
import com.zz.tijian.entity.res.*;
import com.zz.tijian.handle.mq.dto.PayMQDto;
import com.zz.tijian.handle.pay.res.PayStrategy;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
* @author 17958
* @description 针对表【orders】的数据库操作Service
* @createDate 2024-06-13 12:05:47
*/
public interface OrdersService extends IService<Orders> {

    Result<OrderDetailVo> placeOrder(PlaceOrderDto placeOrderDto);

    Result<AvailabilityVo>  checkAvailability(CheckAvailabilityDto checkAvailabilityDto);

    Result<List<OrderOfSetmealVO>> selectOrderByUserId();

    Result<OrderDetailVo> selectByOrderId(Integer orderId);

    Result<Object> payOrder(PayOrderDto payOrderDto, PayStrategy payStrategy);

    Result<Boolean> cancelOrder(CancelOrderDto cancelOrderDto);
     void processRefund(Integer orderId) ;
     void processPay(PayMQDto payMQDto);

     Integer getOrderPrice(Integer orderId);

     OrderPlusVo getOrderPlus(Integer orderId);

    void paySuccess(Integer orderId);
}
